package colecoes;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;

import basicas.Carro;
import basicas.Versao;
import fachada.JDBC;

public class ColCarro {
	
	Vector lst = new Vector();   // --> Declaracao do Vetor

	public void cadastrarCarro(Carro C) throws ClassNotFoundException, SQLException{
		String sql = "insert into carro (codversao,codacabamento,codcor) values ('"+
		C.getCodVersao().getCodVersao()+"',"+
		C.getCodAcabamento().getCodAcacamento()+",'"+
		C.getCodCor().getCodCor()+"');";
		
		System.out.println(sql);
		
		Statement conexao = JDBC.getsStatement();
		conexao.executeUpdate(sql);
		conexao.close();
	}

	
	public void removerCarro(int codigo) throws ClassNotFoundException, SQLException{
		String sql = "DELETE FROM versao WHERE carro = "+codigo+"";
		Statement conexao = JDBC.getsStatement();
		conexao.executeUpdate(sql);
		conexao.close();
	}
	
	public Carro consultarCarro(int codigo) throws ClassNotFoundException, SQLException{
		String sql = "SELECT *FROM carro;";
		Statement conexao = JDBC.getsStatement();
		ResultSet resultado = conexao.executeQuery(sql);
		
		while(resultado.next()){
			Carro car = new Carro();
			
			ColVersao ver = new ColVersao();
			ColAcabamento aca = new ColAcabamento();
			ColCor c = new ColCor();
			
			car.setCodCarro(resultado.getInt("codCarro"));
			
			int codVersao = resultado.getInt("codVersao");
			car.setCodVersao(ver.consultarVersao(codVersao));
			
			int codAcabamento = resultado.getInt("codAcabamento");
			car.setCodAcabamento(aca.consultarAcabamento(codAcabamento));
			
			int codCor = resultado.getInt("codCor");
			car.setCodCor(c.consultarCor(codCor));
			
			
			return car;
		}
		conexao.close();
		return null;
	}
	
	public Vector listarCarro() throws ClassNotFoundException, SQLException{
		String sql = "SELECT *FROM carro;";
		Statement conexao = JDBC.getsStatement();
		ResultSet resultado = conexao.executeQuery(sql);                // Declaracao de uma query do banco
		
		while(resultado.next()){
			Carro car = new Carro();
			
			ColVersao ver = new ColVersao();
			ColAcabamento aca = new ColAcabamento();
			ColCor c = new ColCor();
			
			car.setCodCarro(resultado.getInt("codCarro"));
			
			int codVersao = resultado.getInt("codVersao");
			car.setCodVersao(ver.consultarVersao(codVersao));
			
			int codAcabamento = resultado.getInt("codAcabamento");
			car.setCodAcabamento(aca.consultarAcabamento(codAcabamento));
			
			int codCor = resultado.getInt("codCor");
			car.setCodCor(c.consultarCor(codCor));
			
			lst.add(car);                                               // Armazena o resultado da buxca no vetor
		}
		conexao.close();
		return lst;		                                                // Retorna o vetor
	}
	
}
